package com.ruoyi.project.projectInfo.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.domain.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.Date;

/**
 * 项目信息对象 project_info
 *
 * @author ruoyi
 * @date 2020-05-28
 */
public class ProjectInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 项目编码 */
    @Excel(name = "项目编码")
    private String code;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String name;

    /** 业主单位 */
    @Excel(name = "业主单位")
    private Long owner;

    @Excel(name = "0-未开工，1-已开工，2-已完工，3-已停工,4-已验收,5-已移交")
    private Long state;

    /** 最早开工日期 */
    @Excel(name = "最早开工日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date estartDate;

    /** 最晚开工日期 */
    @Excel(name = "最晚开工日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lstartDate;

    /** 最早完工日期 */
    @Excel(name = "最早完工日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date efinishDate;

    /** 最晚完工日期 */
    @Excel(name = "最晚完工日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lfinishDate;

    /** 1-最早开工，2-最晚完工 */
    @Excel(name = "1-最早开工，2-最晚完工")
    private Long planMode;

    /** 计划开始日期 */
    @Excel(name = "计划开始日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planStartDate;

    /** 计划完工日期 */
    @Excel(name = "计划完工日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date planFinishDate;

    /** 计划工期 */
    @Excel(name = "计划工期")
    private Long planDuration;

    /** 实际开始日期 */
    @Excel(name = "实际开始日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date actStartDate;

    /** 实际完工日期 */
    @Excel(name = "实际完工日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date actFinishDate;

    /** 实际工期 */
    @Excel(name = "实际工期")
    private Long actDuration;

    /** 总时差 */
    @Excel(name = "总时差")
    private Long totalFloat;

    /** 自由时差 */
    @Excel(name = "自由时差")
    private Long freeFloat;

    /** 项目分类 */
    @Excel(name = "项目分类")
    private Long sortId;

    /** 父项目 */
    @Excel(name = "父项目")
    private Long pId;

    /** 父任务 */
    @Excel(name = "父任务")
    private Long pTaskId;

    /** 排序码 */
    @Excel(name = "排序码")
    private Long sortCode;

    /** 创建时间 */
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cdt;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long cdp;

    /** 创建人名 */
    @Excel(name = "创建人名")
    private String cdpName;

    /** 审核时间 */
    @Excel(name = "审核时间")
    private Long checkState;

    /** 审核时间 */
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date checkDt;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long checkDp;

    /** 审核人名 */
    @Excel(name = "审核人名")
    private String checkName;

    /** 项目部门 */
    @Excel(name = "项目部门")
    private Long orgId;

    /** 项目地址 */
    @Excel(name = "项目地址")
    private String address;

    /** 经度 */
    @Excel(name = "经度")
    private Double longitude;

    /** 纬度 */
    @Excel(name = "纬度")
    private Double latitude;

    /** 项目OBS */
    @Excel(name = "项目OBS")
    private Long obs;

    /** 工作日历 */
    @Excel(name = "工作日历")
    private Long workCalendar;

    private Double process;

    private Long self;
    @Excel(name = "负责人编号")
    private Long leaderId;
    private String leaderName;

  public String getLeaderName() {
    return leaderName;
  }

  public void setLeaderName(String leaderName) {
    this.leaderName = leaderName;
  }

  private SysUser leader;


  public Long getLeaderId() {
    return leaderId;
  }

  public void setLeaderId(Long leaderId) {
    this.leaderId = leaderId;
  }

  public SysUser getLeader() {
    return leader;
  }

  public void setLeader(SysUser leader) {
    this.leader = leader;
  }

  public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCode(String code)
    {
        this.code = code;
    }

    public String getCode()
    {
        return code;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setOwner(Long owner)
    {
        this.owner = owner;
    }

    public Long getOwner()
    {
        return owner;
    }
    public void setState(Long state)
    {
        this.state = state;
    }

    public Long getState()
    {
        return state;
    }
    public void setEstartDate(Date estartDate)
    {
        this.estartDate = estartDate;
    }

    public Date getEstartDate()
    {
        return estartDate;
    }
    public void setLstartDate(Date lstartDate)
    {
        this.lstartDate = lstartDate;
    }

    public Date getLstartDate()
    {
        return lstartDate;
    }
    public void setEfinishDate(Date efinishDate)
    {
        this.efinishDate = efinishDate;
    }

    public Date getEfinishDate()
    {
        return efinishDate;
    }
    public void setLfinishDate(Date lfinishDate)
    {
        this.lfinishDate = lfinishDate;
    }

    public Date getLfinishDate()
    {
        return lfinishDate;
    }
    public void setPlanMode(Long planMode)
    {
        this.planMode = planMode;
    }

    public Long getPlanMode()
    {
        return planMode;
    }
    public void setPlanStartDate(Date planStartDate)
    {
        this.planStartDate = planStartDate;
    }

    public Date getPlanStartDate()
    {
        return planStartDate;
    }
    public void setPlanFinishDate(Date planFinishDate)
    {
        this.planFinishDate = planFinishDate;
    }

    public Date getPlanFinishDate()
    {
        return planFinishDate;
    }
    public void setPlanDuration(Long planDuration)
    {
        this.planDuration = planDuration;
    }

    public Long getPlanDuration()
    {
        return planDuration;
    }
    public void setActStartDate(Date actStartDate)
    {
        this.actStartDate = actStartDate;
    }

    public Date getActStartDate()
    {
        return actStartDate;
    }
    public void setActFinishDate(Date actFinishDate)
    {
        this.actFinishDate = actFinishDate;
    }

    public Date getActFinishDate()
    {
        return actFinishDate;
    }
    public void setActDuration(Long actDuration)
    {
        this.actDuration = actDuration;
    }

    public Long getActDuration()
    {
        return actDuration;
    }
    public void setTotalFloat(Long totalFloat)
    {
        this.totalFloat = totalFloat;
    }

    public Long getTotalFloat()
    {
        return totalFloat;
    }
    public void setFreeFloat(Long freeFloat)
    {
        this.freeFloat = freeFloat;
    }

    public Long getFreeFloat()
    {
        return freeFloat;
    }
    public void setSortId(Long sortId)
    {
        this.sortId = sortId;
    }

    public Long getSortId()
    {
        return sortId;
    }
    public void setpId(Long pId)
    {
        this.pId = pId;
    }

    public Long getpId()
    {
        return pId;
    }
    public void setpTaskId(Long pTaskId)
    {
        this.pTaskId = pTaskId;
    }

    public Long getpTaskId()
    {
        return pTaskId;
    }
    public void setSortCode(Long sortCode)
    {
        this.sortCode = sortCode;
    }

    public Long getSortCode()
    {
        return sortCode;
    }
    public void setCdt(Date cdt)
    {
        this.cdt = cdt;
    }

    public Date getCdt()
    {
        return cdt;
    }
    public void setCdp(Long cdp)
    {
        this.cdp = cdp;
    }

    public Long getCdp()
    {
        return cdp;
    }
    public void setCdpName(String cdpName)
    {
        this.cdpName = cdpName;
    }

    public String getCdpName()
    {
        return cdpName;
    }
    public void setCheckState(Long checkState)
    {
        this.checkState = checkState;
    }

    public Long getCheckState()
    {
        return checkState;
    }
    public void setCheckDt(Date checkDt)
    {
        this.checkDt = checkDt;
    }

    public Date getCheckDt()
    {
        return checkDt;
    }
    public void setCheckDp(Long checkDp)
    {
        this.checkDp = checkDp;
    }

    public Long getCheckDp()
    {
        return checkDp;
    }
    public void setCheckName(String checkName)
    {
        this.checkName = checkName;
    }

    public String getCheckName()
    {
        return checkName;
    }
    public void setOrgId(Long orgId)
    {
        this.orgId = orgId;
    }

    public Long getOrgId()
    {
        return orgId;
    }
    public void setAddress(String address)
    {
        this.address = address;
    }

    public String getAddress()
    {
        return address;
    }
    public void setLongitude(Double longitude)
    {
        this.longitude = longitude;
    }

    public Double getLongitude()
    {
        return longitude;
    }
    public void setLatitude(Double latitude)
    {
        this.latitude = latitude;
    }

    public Double getLatitude()
    {
        return latitude;
    }
    public void setObs(Long obs)
    {
        this.obs = obs;
    }

    public Long getObs()
    {
        return obs;
    }
    public void setWorkCalendar(Long workCalendar)
    {
        this.workCalendar = workCalendar;
    }

    public Long getWorkCalendar()
    {
        return workCalendar;
    }
    public void setProcess(Double process)
    {
        this.process = process;
    }

    public Double getProcess()
    {
        return process;
    }
    public void setSelf(Long self)
    {
        this.self = self;
    }

    public Long getSelf()
    {
        return self;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("code", getCode())
            .append("name", getName())
            .append("remark", getRemark())
            .append("owner", getOwner())
            .append("state", getState())
            .append("estartDate", getEstartDate())
            .append("lstartDate", getLstartDate())
            .append("efinishDate", getEfinishDate())
            .append("lfinishDate", getLfinishDate())
            .append("planMode", getPlanMode())
            .append("planStartDate", getPlanStartDate())
            .append("planFinishDate", getPlanFinishDate())
            .append("planDuration", getPlanDuration())
            .append("actStartDate", getActStartDate())
            .append("actFinishDate", getActFinishDate())
            .append("actDuration", getActDuration())
            .append("totalFloat", getTotalFloat())
            .append("freeFloat", getFreeFloat())
            .append("sortId", getSortId())
            .append("pId", getpId())
            .append("pTaskId", getpTaskId())
            .append("sortCode", getSortCode())
            .append("cdt", getCdt())
            .append("cdp", getCdp())
            .append("cdpName", getCdpName())
            .append("checkState", getCheckState())
            .append("checkDt", getCheckDt())
            .append("checkDp", getCheckDp())
            .append("checkName", getCheckName())
            .append("orgId", getOrgId())
            .append("address", getAddress())
            .append("longitude", getLongitude())
            .append("latitude", getLatitude())
            .append("obs", getObs())
            .append("workCalendar", getWorkCalendar())
            .append("process", getProcess())
            .append("self", getSelf())
            .toString();
    }
}
